#include <stdio.h>

// putchar, getchar

int main(int argc, char const *argv[])
{
    // putchar
    // int putchar(int c);
    // 向标准输出写一个字符
    // 返回写了几个字符，EOF(-1)表示写失败 -> EOF是一个宏

    // getchar
    // int getchar(void)
    // 从标准输入读入一个字符
    // 返回类型是 int 是为了返回EOF(-1)，表示输入结束

    int ch;

    while ((ch = getchar()) != EOF)
    {
        putchar(ch);
    }

    // 亲测输入 ctrl + C 和 ctrl + Z 和回车都会输出
    printf("EOF\n");
    // 输入会被shell放进输入缓冲区，读到EOF就结束
    
    return 0;
}